#pragma once

#ifndef _DECORATOR_H_
#define _DECORATOR_H_

#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;


class Beverage
{
public:
	Beverage():m_descrption("unknown beverage")
	{

	}
	virtual ~Beverage()
	{

	}
	virtual double cost()=0;
	virtual string GetDescrption() { return m_descrption; }
	

private:
	string m_descrption;
};

//decorator class extends the base class just for type match.
class CondimentBeverage: public Beverage
{
public:
	virtual ~CondimentBeverage(){}
	virtual string GetDescrption()=0;
	CondimentBeverage(){}
};


#endif